/**************************************************************************
 *  创建者：        hualei
 *  开始时间：   2018.09.28
 *  copyright:  (C) 深圳市华友高科有限公司
 *  修改说明：  (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 *
 ***************************************************************************
 *   LIFT 升降机构指令属性编辑视窗类
 *
 ***************************************************************************/
#ifndef LIFTMECHANISMINSTRUCTIONVIEW_H
#define LIFTMECHANISMINSTRUCTIONVIEW_H

#include <QWidget>
#include <QObject>
#include <QTranslator>
#include "liftmechanisminstructionview_global.h"
#include "instructionEnum.h"

class ProgramView;

namespace Ui {
class LiftMechanismInstructionView;
}

///**
// * @brief The EM_MECHANISM_TYPE enum        升降机构类型
// */
//enum EM_MECHANISM_TYPE
//{
//    E_MECHANISM_GENERAL,        // 普通一般
//    E_MECHANISM_HEAVY,        // 普通一般
//    E_MECHANISM_ERROR
//};

///**
// * @brief The EM_LIFT_TYPE enum             升降类型
// */
//enum EM_LIFT_TYPE
//{
//    E_LIFT_RISE,                // 上升
//    E_LIFT_DOWN,               // 下降
//    E_LIFT_ERROR
//};

/**
 * @brief The LiftMechanismInstructionView class        LIFT 升降机构指令属性编辑视窗类
 */
class LIFTMECHANISMINSTRUCTIONVIEW_EXPORT LiftMechanismInstructionView : public QWidget
{
    Q_OBJECT

public:
    explicit LiftMechanismInstructionView(int styleId,QWidget *parent = 0);

    /**
     * @brief getInput                      获取界面输入数据
     */
    void getInput();

    /**
     * @brief updateView                    更新数据显示在窗口上
     */
    void updateView();

    /**
     * @brief changeLanguage                更改语言
     * @param language                      语言编号
     */
    void changeLanguage(int language);

    void initialDisplayStyle(int styleId);

signals:

    /**
     * @brief cleanNoteSignal                   清除注释信号
     */
    void cleanNoteSignal();

    /**
     * @brief finishEditInstructionSignal       指令属性编辑完成信号
     */
    void finishEditInstructionSignal();

    /**
     * @brief saveInstruction                   保存编辑好的指令信号
     * @param instructionStr                    编辑好的指令字符串
     */
    void saveInstruction(const QString& instructionStr);

private slots:
    /**
     * @brief on_Rise_RadioBtn_clicked           选择上升机构响应槽函数
     */
    void on_Rise_RadioBtn_clicked();

    /**
     * @brief on_Down_RadioBtn_clicked          选择下降机构响应槽函数
     */
    void on_Down_RadioBtn_clicked();

    /**
     * @brief on_clearNote_Btn_clicked          清除注释响应槽函数
     */
    void on_clearNote_Btn_clicked();

    /**
     * @brief on_save_Btn_clicked               保存指令响应槽函数
     */
    void on_save_Btn_clicked();

    /**
     * @brief on_forward_Btn_clicked            上一页响应槽函数
     */
    void on_forward_Btn_clicked();

    void on_Rise_RadioBtn_middle_clicked();

    void on_Down_RadioBtn_middle_clicked();

public:

    /**
     * @brief programView           指令程序主界面对象
     */
    ProgramView *programView;

    /**
     * @brief liftType              升降类型
     */
    EM_LIFT_TYPE liftType;

    /**
     * @brief mechanismType         机构类型
     */
//    EM_MECHANISM_TYPE mechanismType;//not used

    /**
     * @brief instructionStr        指令
     */
    QString instructionStr;

    /**
     * @brief timeOutValue          超时时间(秒)
     */
    int timeOutValue;

    /**
     * @brief jmpLbValue            超时跳转标签
     */
    int jmpLbValue;

    /**
     * @brief noteStr               注释
     */
    QString noteStr;

private:
    Ui::LiftMechanismInstructionView *ui;

    QTranslator translator;
};

#endif // LIFTMECHANISMINSTRUCTIONVIEW_H
